Software-defined networking (SDN) is a networking architecture that decouples the network control and data/forwarding planes. Since the network control and forwarding functions are decoupled, SDN enables the network control to become directly programmable and the underlying infrastructure to be abstracted for applications and network services